Industrial controllers are specialized computer systems used for the control of industrial processes or machinery, for example, in a factory environment. Generally, an industrial controller executes a stored control program that reads inputs from a variety of sensors associated with the controlled process or machine and, sensing the conditions of the process or machine, and based on those inputs and a stored control program, calculates a set of outputs used to control actuators controlling the process or machine. The Logix5000 Controllers from Rockwell Automation, Inc. of Milwaukee, Wis. are exemplar of such industrial controllers.
Industrial controllers differ from conventional computers in a number of ways. Physically, they are constructed to be substantially more robust against shock and damage and to better resist external contaminants and extreme environmental conditions than conventional computers. The processors and operating systems are optimized for real-time control and are programmed with languages designed to permit rapid development of control programs tailored to a constantly varying set of machine control or process control applications.
Generally, industrial controllers have a highly modular architecture, for example, that allows different numbers and types of input and output modules to be used to connect the controller to the process or machinery to be controlled. This modularity is facilitated through the use of special “control networks” suitable for highly reliable and available real-time communication. Such control networks (for example, EtherNet/IP. DeviceNet and ControlNet) differ from standard communication networks (such as Ethernet) by guaranteeing maximum communication delays by pre-scheduling the communication capacity of the network, and/or providing redundant communication capabilities for high-availability.
As part of their enhanced modularity, industrial controllers may employ I/O modules or devices dedicated to a particular type of electrical signal and function, for example, detecting input AC or DC signals or controlling output AC or DC signals. Each of these I/O modules or devices may have a connector system allowing them to be installed in different combinations in a housing or rack along with other selected I/O modules or devices to match the demands of the particular application. Multiple or individual I/O modules or devices may be located at convenient control points near the controlled process or machine to communicate with a central industrial controller via the control network.
After industrial controllers are deployed in the field and operating to actively control industrial processes or machines, subsequently updating the industrial controllers can be difficult. Updates might be recommended or required by vendors to address any number of issues, such as correcting an instruction or library having an anomaly first noticed in the field, or extending an instruction or library to provide greater functionality as later determined in the field. Installing such updates typically requires updating (or re-flashing) firmware of the industrial controllers, and updating firmware typically requires temporary downtime for the industrial controllers.
However, interrupting control of an industrial process is oftentimes costly and therefore undesirable. For example, if an industrial controller is actively controlling an assembly line producing articles, every minute the industrial controller is taken down, the assembly line may lose production a quantifiable number of articles from production. Consequently, entities operating industrial controllers must often decide whether the benefits of industrial controller updates outweigh the costs, and if so, the optimal date/time for updating industrial controllers with the least impact on cost.
It some instances, it may be possible to update user logic of industrial controllers online, such as Online Editing or Partial Import Online. However, updating with such tools online is typically limited to only the logic created by the user.
What is needed is a mechanism by which industrial controllers may be conveniently updated after they are deployed in the field without requiring costly downtime and/or being limited to user logic.